/**
 *   Sends a message to the chat server in a separate Runnable.
 */
package projetomsn.Client.ServerInterface;


import java.io.IOException;
import java.util.Formatter;
import java.net.Socket;
import javax.swing.JOptionPane;


/**
 * Classe de Thread que envia a mensagem para o servidor do chat 
 */
public class ThreadToSendMessage implements Runnable 
{
   /**
     * Socket que envia mensagens
     */
   private Socket clientSocket;
   /**
    * Mensagem a ser enviada
    */
   private String messageToBeSent;
   /**
    * 
    */
   private static final String TOKEN="&&#*#&&";
   
   /**
    * Metodo construtor que recebe socket, nome do usuário e mensagem a ser enviada
    */
   public ThreadToSendMessage( Socket clientSocket, String name, String messageToBeSent ) 
   {
      this.clientSocket = clientSocket; // armazena Socket para o cliente
      
      // constroi a mensagem para ser enviada
      this.messageToBeSent = name+TOKEN+">>>"+TOKEN+ messageToBeSent;
   } 
   
   /**
    * Encerra a mensagem
    */
    @Override
   public void run() 
   {
     sendMessage();
   } 
   
   
   /**
     * Metodo para enviar a mensagem
     */
   private void sendMessage(){
        try 
      {     
         Formatter formaterOutput =
            new Formatter( clientSocket.getOutputStream() );
         
         formaterOutput.format( "%s\n", messageToBeSent ); // envia mensagem
         
         formaterOutput.flush(); // enviar a mensagem
      } 
      catch ( IOException ioException ) 
      {
         JOptionPane.showMessageDialog(null,"Can send message");
      } 
   }
} 
